package at.fhv.components.sobel;

/**
 * The Sobel class.
 * 
 * @author Michael Sieber
 */
public enum Sobel 
{
	HORIZONTAL_SOBEL("Horizontal Sobel", new float[] { -1, 0, 1, -2, 0, 2, -1, 0, 1 }, 3, 3),
	VERTICAL_SOBEL("Vertical Sobel", new float[] { -1, -2, -1, 0, 0, 0, 1, 2, 1 }, 3, 3),
	DIAG_SOBEL_1("Diagonal Sobel 1", new float[] { 0, -1, -2, 1, 0, -1, 2, 1, 0 }, 3, 3),
	DIAG_SOBEL_2("Diagonal Sobel 2", new float[] { -2, -1, 0, 1, 0, -1, 2, 1, 0 }, 3, 3),
	CUSTOM_SOBEL("Custom", new float[9], 3, 3);

	private float[] _matrix;
	private String _name;
	private int _rows;
	private int _columns;

	private Sobel(String name, float[] matrix, int rows, int columns) 
	{
		_matrix = matrix;
		_name = name;
		_rows = rows;
		_columns = columns;
	}

	public float[] getMatrix() { return _matrix; }

	public String getName() { return _name; }

	public int getColumns() { return _columns; }
	
	public int getRows() { return _rows; }
	
	@Override
	public String toString() { return _name; }
}
